package com.xtgg.widget;

import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.util.AttributeSet;
import android.widget.ImageView;

public class AutoAdjustHeightImageView extends ImageView {
	private int imageWidth;
	private int imageHeight;

	public AutoAdjustHeightImageView(Context context, AttributeSet attrs) {
		super(context, attrs);
		getImageSize();
	}

	private void getImageSize() {
		Drawable background = this.getBackground();
		if (background == null)
			return;
		Bitmap bitmap = ((BitmapDrawable) background).getBitmap();
		imageWidth = bitmap.getWidth();
		imageHeight = bitmap.getHeight();
	}

	// @Override
	// protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
	// int width = MeasureSpec.getSize(widthMeasureSpec);
	// int height = width * imageHeight / imageWidth;
	// this.setMeasuredDimension(width, height);
	// }

	@Override
	protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
		Drawable d = getDrawable();

		if (d != null) {
			// ceil not round - avoid thin vertical gaps along the left/right
			// edges
			int width = MeasureSpec.getSize(widthMeasureSpec);
			int height = (int) Math.ceil((float) width
					* (float) d.getIntrinsicHeight()
					/ (float) d.getIntrinsicWidth());
			setMeasuredDimension(width, height);
		} else {
			super.onMeasure(widthMeasureSpec, heightMeasureSpec);
		}
	}
}
